package com.kykj.kykj.controller;

import com.kykj.kykj.entity.ResultEntity;
import com.kykj.kykj.vo.UserVo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.UUID;

@RequestMapping("v2/test/")
@CrossOrigin//解决跨域问题
@RestController
public class TestController {
    @Value("${project.localfilepath}")
    private String localfilepath; //获取本地存储文件夹

    /**
     * 获取用户
     * @param name 用户名
     * @return JSON
     */
    @GetMapping("test")
    private ResultEntity gettest(@RequestParam("name") String name){
        ResultEntity resultEntity = new ResultEntity();
        resultEntity.setCode(0);
        resultEntity.setMsg("当前用户名："+name);
        return resultEntity;
    }

    /**
     * 增加用户
     * @param userVo 用户对象
     * @return json
     */
    @PostMapping("test")
    private ResultEntity settest(@RequestBody UserVo userVo){
        ResultEntity resultEntity = new ResultEntity();
        resultEntity.setCode(0);
        resultEntity.setMsg("当前用户名："+userVo.getUname()+"当前电话："+userVo.getPhone());
        return resultEntity;
    }

    /**
     * 修改用户信息
     * @param userVo 用户对象
     * @return json
     */
    @PutMapping("test")
    private ResultEntity uptest(@RequestBody UserVo userVo){
        ResultEntity resultEntity = new ResultEntity();
        resultEntity.setCode(0);
        resultEntity.setMsg("当前用户名："+userVo.getUname()+"当前电话："+userVo.getPhone());
        return resultEntity;
    }

    /**
     * 删除用户
     * @param name 用户名
     * @return json
     */
    @DeleteMapping("test/{name}")
    private ResultEntity deltest(@PathVariable("name") String name){
        ResultEntity resultEntity = new ResultEntity();
        resultEntity.setCode(0);
        resultEntity.setMsg("当前用户名："+name);
        return resultEntity;
    }

    /**
     * 文件上传
     * @param multipartFile 文件
     * @return JSON
     */
    @PostMapping("upfile")
    private ResultEntity upFile(@RequestParam("multipartFile")MultipartFile multipartFile){
        ResultEntity resultEntity = new ResultEntity();
        String suffixName= multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."));//获取文件后缀名
        String fileNewName= UUID.randomUUID().toString()+suffixName;//生成新的文件名。
        String allFileNameAndFilePath=localfilepath+"/"+fileNewName;//文件名+文件路径全部
        File dest = new File(allFileNameAndFilePath);//新建文件对象
        if(!dest.getParentFile().exists()){//如果文件夹不存在
            dest.mkdirs();//新建
        }
        try{
            multipartFile.transferTo(dest);//保存文件
            resultEntity.setMsg("文件上传成功！");
            resultEntity.setCode(0);
        }catch (Exception exception){
            resultEntity.setMsg("系统错误");
            resultEntity.setCode(-1);
        }
        return resultEntity;
    }
}
